home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / muds / mordor_2.000 / mordor_2 / src / action.c next >
C/C++ Source or Header  |  1994-11-21  |  20KB  |  656 lines

  1. /*
  2.  * ACTION.C:
  3.  *
  4.  *      This file contains the routines necessary to achieve action
  5.  *      commands.
  6.  *
  7.  *      Copyright (C) 1991, 1992, 1993 Brett J. Vickers
  8.  *
  9.  */
  10.  
  11. #include "mstruct.h"
  12. #include "mextern.h"
  13.  
  14. #define SHIT 349
  15.  
  16. /**********************************************************************/
  17. /*                              action                                */
  18. /**********************************************************************/
  19.  
  20. /* This function allows a player to commit an action command.         */
  21.  
  22. #define OUT(a,b)        print(fd, a); \
  23.             broadcast_rom(fd, ply_ptr->rom_num, b, ply_ptr);
  24. #define OUT2(a,b)       print(fd, a); \
  25.             broadcast_rom(fd, ply_ptr->rom_num, b, ply_ptr, \
  26.             F_ISSET(ply_ptr, PMALES) ? "his":"her");
  27. #define OUT3(a,b)       print(fd, a); \
  28.             broadcast_rom(fd, ply_ptr->rom_num, b, ply_ptr, \
  29.             F_ISSET(ply_ptr, PMALES) ? "he":"she");
  30. #define OUT4(a,b,c)     print(fd, a, crt_ptr); \
  31.             print(crt_ptr->fd, b, ply_ptr); \
  32.             broadcast_rom2(fd, crt_ptr->fd, rom_ptr->rom_num, \
  33.                        c, ply_ptr, crt_ptr);
  34. #define OUT5(a,b)       print(fd, a); \
  35.             broadcast_rom(fd, ply_ptr->rom_num, b, ply_ptr, \
  36.             F_ISSET(ply_ptr, PMALES) ? "him":"her");
  37.  
  38. int action(ply_ptr, cmnd)
  39. creature        *ply_ptr;
  40. cmd             *cmnd;
  41. {
  42.     room            *rom_ptr;
  43.     creature        *crt_ptr = 0;
  44.     object          *obj_ptr;
  45.     int             match=0, cmdno=0, c=0, n, fd, num;
  46.  
  47.     fd = ply_ptr->fd;
  48.     rom_ptr = ply_ptr->parent_rom;
  49.  
  50.     F_CLR(ply_ptr, PHIDDN);
  51.  
  52.     do {
  53.         if(!strcmp(cmnd->str[0], cmdlist[c].cmdstr)) {
  54.             match = 1;
  55.             cmdno = c;
  56.             break;
  57.         }
  58.         else if(!strncmp(cmnd->str[0], cmdlist[c].cmdstr, 
  59.             strlen(cmnd->str[0]))) {
  60.             match++;
  61.             cmdno = c;
  62.         }
  63.         c++;
  64.     } while(cmdlist[c].cmdno);
  65.  
  66.     if(cmnd->num == 2) {
  67.         crt_ptr = find_crt(ply_ptr, rom_ptr->first_mon,
  68.                    cmnd->str[1], cmnd->val[1]);
  69.         if(!crt_ptr) {
  70.             cmnd->str[1][0] = up(cmnd->str[1][0]);
  71.             crt_ptr = find_crt(ply_ptr, rom_ptr->first_ply,
  72.                        cmnd->str[1], cmnd->val[1]);
  73.         }
  74.         if(!crt_ptr || crt_ptr == ply_ptr) {
  75.             print(fd, "That is not here.\n");
  76.             return(0);
  77.         }
  78.     }
  79.  
  80.     if(!strcmp(cmdlist[cmdno].cmdstr, "nod")) {
  81.         OUT("You nod.\n", "%M nods.");
  82.     }
  83.     else if(!strcmp(cmdlist[cmdno].cmdstr, "laugh")) {
  84.         OUT("You fall down laughing.\n", "%M falls down laughing.");
  85.     }
  86.     else if(!strcmp(cmdlist[cmdno].cmdstr, "smile")) {
  87.         OUT("You smile happily.\n", "%M smiles happily.");
  88.     }
  89.     else if(!strcmp(cmdlist[cmdno].cmdstr, "warm")) {
  90.         OUT("You smile warmly.\n", "%M smiles warmly.");
  91.     }
  92.     else if(!strcmp(cmdlist[cmdno].cmdstr, "snicker")) {
  93.                 OUT("You snicker.\n", "%M snickers.");
  94.         }
  95.     else if(!strcmp(cmdlist[cmdno].cmdstr, "beam")) {
  96.         OUT("You beam happily.\n", "%M beams happily.");
  97.     }
  98.     else if(!strcmp(cmdlist[cmdno].cmdstr, "relax")) {
  99.         OUT("You breath deeply.\n", "%M takes a deep breath and sighs comfortably.");
  100.     }
  101.     else if(!strcmp(cmdlist[cmdno].cmdstr, "smoke")) {
  102.         OUT("You take a puff.\n", "%M puffs on a pipe.");
  103.     }
  104.     else if(!strcmp(cmdlist[cmdno].cmdstr, "puke")) {
  105.                 OUT("You blow chunks.\n", "%M vomits on the ground.");
  106.         }
  107.     else if(!strcmp(cmdlist[cmdno].cmdstr, "burp")) {
  108.                 OUT("You belch loudly.\n", "%M belches rudely.");
  109.     }
  110.     else if(!strcmp(cmdlist[cmdno].cmdstr, "ponder")) {
  111.                 OUT("You ponder the situation.\n", "%M ponders the situation.\n.");
  112.         }
  113.         else if(!strcmp(cmdlist[cmdno].cmdstr, "think")) {
  114.                 OUT("You think carefully.\n", "%M thinks carefully.\n.");
  115.         }
  116.         else if(!strcmp(cmdlist[cmdno].cmdstr, "ack")) {
  117.                 OUT("You ack.\n", "%M acks.\n.");
  118.         }
  119.     else if(!strcmp(cmdlist[cmdno].cmdstr, "nervous")) {
  120.         OUT("You titter nervously.\n", "%M titters nervously.");
  121.     }
  122.     else if(!strcmp(cmdlist[cmdno].cmdstr, "sleep")) {
  123.         OUT("You take a nap.\n", "%M dozes off.");
  124.     }
  125.     else if(!strcmp(cmdlist[cmdno].cmdstr, "masterbate")) {
  126.         OUT("You masterbate to orgasm.\n", "%M masterbates to orgasm.");
  127.         /*if(mrand(1,100)<1  && !F_ISSET(ply_ptr, PBLIND)) {
  128.          *    F_SET(ply_ptr,PBLIND);
  129.          *    ANSI(fd, RED);
  130.          *    print(fd, "You've gone blind!\n");
  131.          *    ANSI(fd, WHITE);
  132.         }*/
  133.         
  134.     }
  135.     else if(!strcmp(cmdlist[cmdno].cmdstr, "shake")) {
  136.         if(crt_ptr) {
  137.             OUT4("You shake %m's hand.\n", "%M shakes your hand.\n", "%M shakes %m's hand.");
  138.         }
  139.         else {
  140.             OUT2("You shake your head.\n", "%M shakes %s head.");
  141.         }
  142.     }
  143.     else if(!strcmp(cmdlist[cmdno].cmdstr, "knee")) {
  144.                 if(crt_ptr) {
  145.                         OUT4("You knee %m in the crotch.\n",
  146.                              "%M painfully knees you in the crotch.\n",
  147.                              "%M painfully knees %m.");
  148.                 }
  149.                 else
  150.                         print(fd, "Knee whom?\n");
  151.         }
  152.     else if(!strcmp(cmdlist[cmdno].cmdstr, "pounce")) {
  153.                 if(crt_ptr) {
  154.                         OUT4("You pounce on %m.\n",
  155.                              "%M pounces on you.\n",
  156.                              "%M pounces on %m.");
  157.                 }
  158.                 else
  159.                         print(fd, "Pounce on whom?\n");
  160.         }
  161.         else if(!strcmp(cmdlist[cmdno].cmdstr, "tickle")) {
  162.                 if(crt_ptr) {
  163.                         OUT4("You tickle %m mercilessly.\n",
  164.                              "%M tickles you mercilessly.\n",
  165.                              "%M tickles %m mercilessly.");
  166.                 }
  167.                 else
  168.                         print(fd, "Tickle whom?\n");
  169.         }
  170.         else if(!strcmp(cmdlist[cmdno].cmdstr, "kick")) {
  171.                 if(crt_ptr) {
  172.                         OUT4("You kick %m.\n",
  173.                              "%M kicks you.\n",
  174.                              "%M kicks %m.");
  175.                 }
  176.                 else
  177.                         print(fd, "Kick whom?\n");
  178.         }
  179.         else if(!strcmp(cmdlist[cmdno].cmdstr, "tackle")) {
  180.                 if(crt_ptr) {
  181.                         OUT4("You tackle %m to the ground.\n",
  182.                              "%M tackles you to the ground.\n",
  183.                              "%M tackles %m to the ground.");
  184.                 }
  185.                 else
  186.                         print(fd, "Tackle whom?\n");
  187.         }
  188.     else if(!strcmp(cmdlist[cmdno].cmdstr, "frustrate")) {
  189.                 OUT2("You pull your hair out.\n",
  190.                      "%M pulls %s hair out in frustration.");
  191.         }
  192.     else if(!strcmp(cmdlist[cmdno].cmdstr, "tap")) {
  193.                 OUT2("You tap your foot impatiently.\n",
  194.                      "%M taps %s foot impatiently.");
  195.         }
  196.     else if(!strcmp(cmdlist[cmdno].cmdstr, "cheer")) {
  197.                 if(crt_ptr) {
  198.                         OUT4("You cheer for %m.\n", "%M cheers for you.\n",
  199.                              "%M cheers for %m.");
  200.                 }
  201.                 else {
  202.                         OUT("You cheer.\n", "%M yells like a cheerleader.");
  203.                 }
  204.         }
  205.     else if(!strcmp(cmdlist[cmdno].cmdstr, "poke")) {
  206.         if(crt_ptr) {
  207.             OUT4("You poke %m.\n", "%M pokes you.\n",
  208.                  "%M pokes %m.");
  209.         }
  210.         else {
  211.             OUT("You poke everyone.\n", "%M pokes you.");
  212.         }
  213.     }
  214.     else if(!strcmp(cmdlist[cmdno].cmdstr, "ogle")) {
  215.         if(crt_ptr) {
  216.             OUT4("You ogle %m with carnal intent.\n", "%M ogles you salaciously.\n",
  217.                  "%M ogles %m salaciously.");
  218.         }
  219.         else
  220.             print(fd, "Ogle whom?\n");
  221.         
  222.     }
  223.     else if(!strcmp(cmdlist[cmdno].cmdstr, "fart")) {
  224.         if(crt_ptr) {
  225.             OUT4("You fart on %m.\n", "%M farts on you.\n",
  226.                  "%M farts on %m.");
  227.         }
  228.         else {
  229.             OUT("You fart.\n", "%M breaks wind.");
  230.         }
  231.     }
  232.     else if(!strcmp(cmdlist[cmdno].cmdstr, "spit")) {
  233.         if(crt_ptr) {
  234.             OUT4("You spit on %m.\n", "%M spits on you.\n",
  235.                  "%M spits on %m.");
  236.         }
  237.         else {
  238.             OUT("You spit.\n", "%M spits.");
  239.         }
  240.     }
  241.     else if(!strcmp(cmdlist[cmdno].cmdstr, "expose")) {
  242.         if(crt_ptr) {
  243.             OUT4("You expose yourself in front of %m.\n", 
  244.                  "%M gets naked in front of you.\n",
  245.                  "%M gets naked in front of %m.");
  246.         }
  247.         else {
  248.             OUT5("You expose yourself.\n", "%M exposes %sself.");
  249.         }
  250.     }
  251.     else if(!strcmp(cmdlist[cmdno].cmdstr, "wink")) {
  252.         if(crt_ptr) {
  253.             OUT4("You wink at %m.\n", "%M winks at you.\n",
  254.                  "%M winks at %m.");
  255.         }
  256.         else {
  257.             OUT("You wink.\n", "%M winks.");
  258.         }
  259.     }
  260.     else if(!strcmp(cmdlist[cmdno].cmdstr, "wave")) {
  261.         if(crt_ptr) {
  262.             OUT4("You wave to %m.\n", "%M waves to you.\n",
  263.                  "%M waves to %m.");
  264.         }
  265.         else {
  266.             OUT("You wave happily.\n", "%M waves happily.");
  267.         }
  268.     }
  269.     else if(!strcmp(cmdlist[cmdno].cmdstr, "chuckle")) {
  270.         OUT("You chuckle.\n", "%M chuckles.");
  271.     }
  272.     else if(!strcmp(cmdlist[cmdno].cmdstr, "cackle")) {
  273.         OUT("You cackle gleefully.\n",
  274.             "%M cackles out loud with glee.");
  275.     }
  276.     else if(!strcmp(cmdlist[cmdno].cmdstr, "sigh")) {
  277.         OUT("You sigh sadly.\n", "%M lets out a long, sad sigh.");
  278.     }
  279.     else if(!strcmp(cmdlist[cmdno].cmdstr, "bounce")) {
  280.         OUT3("You bounce around wildly!\n", 
  281.              "%M is so excited, %s can hardly keep still!");
  282.     }
  283.     else if(!strcmp(cmdlist[cmdno].cmdstr, "shrug")) {
  284.         OUT("You shrug your shoulders.\n", "%M shrugs helplessly.");
  285.     }
  286.     else if(!strcmp(cmdlist[cmdno].cmdstr, "twiddle")) {
  287.         OUT2("You twiddle your thumbs.\n",
  288.              "%M twiddles %s thumbs.");
  289.     }
  290.     else if(!strcmp(cmdlist[cmdno].cmdstr, "yawn")) {
  291.         OUT("You yawn loudly.\n", "%M yawns out loud.");
  292.     }
  293.     else if(!strcmp(cmdlist[cmdno].cmdstr, "grin")) {
  294.         OUT("You grin evilly.\n", "%M grins evilly.");
  295.     }
  296.     else if(!strcmp(cmdlist[cmdno].cmdstr, "frown")) {
  297.         OUT("You frown.\n", "%M frowns.");
  298.     }
  299.     else if(!strcmp(cmdlist[cmdno].cmdstr, "giggle")) {
  300.         OUT("You giggle inanely.\n", "%M giggles inanely.");
  301.     }
  302.     else if(!strcmp(cmdlist[cmdno].cmdstr, "sing")) {
  303.         OUT("You sing a song.\n", "%M sings a song.");
  304.     }
  305.     else if(!strcmp(cmdlist[cmdno].cmdstr, "hum")) {
  306.         OUT("You hum a little tune.\n", "%M hums a little tune.");
  307.     }
  308.     else if(!strcmp(cmdlist[cmdno].cmdstr, "snap")) {
  309.         OUT2("You snap your fingers.\n", "%M snaps %s fingers.");
  310.     }
  311.     else if(!strcmp(cmdlist[cmdno].cmdstr, "jump")) {
  312.         OUT("You jump for joy.\n", "%M jumps for joy.");
  313.     }
  314.     else if(!strcmp(cmdlist[cmdno].cmdstr, "skip")) {
  315.         OUT("You skip like a girl.\n", "%M skips like a girl.");
  316.     }
  317.     else if(!strcmp(cmdlist[cmdno].cmdstr, "dance")) {
  318.         OUT("You dance about the room.\n", "%M dances about the room.");
  319.     }
  320.     else if(!strcmp(cmdlist[cmdno].cmdstr, "cry")) {
  321.         OUT("You burst into tears.\n", "%M bursts into tears.");
  322.     }
  323.     else if(!strcmp(cmdlist[cmdno].cmdstr, "bleed")) {
  324.         OUT("You bleed profusely.\n", "%M bleeds profusely.");
  325.     }
  326.     else if(!strcmp(cmdlist[cmdno].cmdstr, "sniff")) {
  327.         OUT("You sniff the air.\n", "%M sniffs the air.");
  328.     }
  329.     else if(!strcmp(cmdlist[cmdno].cmdstr, "whimper")) {
  330.         OUT("You whimper like a beat dog.\n", 
  331.             "%M whimpers like a beat dog.");
  332.     }
  333.     else if(!strcmp(cmdlist[cmdno].cmdstr, "cringe")) {
  334.         OUT("You cringe fearfully.\n", "%M cringes fearfully.");
  335.     }
  336.     else if(!strcmp(cmdlist[cmdno].cmdstr, "whistle")) {
  337.         OUT("You whistle a tune.\n", "%M whistles a tune.");
  338.     }
  339.     else if(!strcmp(cmdlist[cmdno].cmdstr, "smirk")) {
  340.         OUT("You smirk wryly.\n", "%M smirks wryly.");
  341.     }
  342.     else if(!strcmp(cmdlist[cmdno].cmdstr, "gasp")) {
  343.         OUT("Your jaw drops.\n", "%M gasps in amazement.");
  344.     }
  345.     else if(!strcmp(cmdlist[cmdno].cmdstr, "grunt")) {
  346.         OUT("You grunt.\n", "%M grunts agonizingly.");
  347.     }
  348.     else if(!strcmp(cmdlist[cmdno].cmdstr, "flex")) {
  349.         OUT2("You flex your muscles.\n", "%M flexes %s muscles.");
  350.     }
  351.     else if(!strcmp(cmdlist[cmdno].cmdstr, "blush")) {
  352.         OUT("You blush.\n", "%M turns beet-red.");
  353.     }
  354.     else if(!strcmp(cmdlist[cmdno].cmdstr, "stomp")) {
  355.         OUT("You stomp around.\n", "%M stomps around ostentatiously.");
  356.     }
  357.     else if(!strcmp(cmdlist[cmdno].cmdstr, "fume")) {
  358.         OUT("You fume.\n", "%M fumes. You can almost see the steam.");
  359.     }
  360.     else if(!strcmp(cmdlist[cmdno].cmdstr, "clap")) {
  361.         OUT2("You clap your hands.\n", "%M claps %s hands.");
  362.     }
  363.     else if(!strcmp(cmdlist[cmdno].cmdstr, "rage")) {
  364.         OUT("You rage like a madman.\n", "%M rages likes a madman.");
  365.     }
  366.     else if(!strcmp(cmdlist[cmdno].cmdstr, "defecate")) {
  367.         if(!dec_daily(&ply_ptr->daily[DL_DEFEC])) {
  368.             print(fd,"You don't have to go.\n");
  369.             return(0);
  370.         }
  371.         n = load_obj(SHIT, &obj_ptr);
  372.         if(n > -1) {
  373.             sprintf(obj_ptr->name, "piece of %s's shit",
  374.                 ply_ptr->name);
  375.             add_obj_rom(obj_ptr, ply_ptr->parent_rom);
  376.         }
  377.         OUT("You squat down and shit.\n", "%M squats down and shits.");
  378.     }
  379.     else if(!strcmp(cmdlist[cmdno].cmdstr, "pout")) {
  380.         OUT("You pout.\n", "%M pouts like a child.");
  381.     }
  382.     else if(!strcmp(cmdlist[cmdno].cmdstr, "drool")) {
  383.         OUT5("You drool.\n", "%M drools all over %sself.");
  384.     }
  385.     else if(!strcmp(cmdlist[cmdno].cmdstr, "faint")) {
  386.         OUT("You faint.\n", "%M faints.");
  387.     }
  388.     else if(!strcmp(cmdlist[cmdno].cmdstr, "goose")) {
  389.         if(crt_ptr) {
  390.             OUT4("You goose %m.\n", "%M gooses you.\n",
  391.                  "%M gooses %m.");
  392.         }
  393.         else
  394.             print(fd, "Goose whom?\n");
  395.     }
  396.     else if(!strcmp(cmdlist[cmdno].cmdstr, "copulate")) {
  397.         if(crt_ptr) {
  398.             OUT4("You copulate with %m.\n", 
  399.                  "%M copulates with you.\n",
  400.                  "%M copulates with %m.");
  401.         }
  402.         else
  403.             print(fd, "Copulate with whom?\n");
  404.     }
  405.     else if(!strcmp(cmdlist[cmdno].cmdstr, "hug")) {
  406.         if(crt_ptr) {
  407.             OUT4("You hug %m.\n", "%M hugs you close.\n",
  408.                  "%M hugs %m close.");
  409.         }
  410.         else
  411.             print(fd, "Hug whom?\n");
  412.     }
  413.     else if(!strcmp(cmdlist[cmdno].cmdstr, "comfort")) {
  414.         if(crt_ptr) {
  415.             OUT4("You comfort %m.\n", "%M comforts you.\n",
  416.                  "%M comforts %m.");
  417.         }
  418.         else
  419.             print(fd, "Comfort whom?\n");
  420.     }
  421.     else if(!strcmp(cmdlist[cmdno].cmdstr, "suck")) {
  422.         if(crt_ptr) {
  423.             OUT4("You suck %m.\n", "%M sucks you.\n", 
  424.                  "%M sucks %m.");
  425.         }
  426.         else
  427.             print(fd, "Suck whom?\n");
  428.     }
  429.     else if(!strcmp(cmdlist[cmdno].cmdstr, "kiss")) {
  430.         if(crt_ptr) {
  431.             OUT4("You kiss %m gently.\n", 
  432.                  "%M kisses you gently.\n",
  433.                  "%M kisses %m.");
  434.         }
  435.         else
  436.             print(fd, "Kiss whom?\n");
  437.     }
  438.     else if(!strcmp(cmdlist[cmdno].cmdstr, "slap")) {
  439.         if(crt_ptr) {
  440.             OUT4("You slap %m.\n", 
  441.                  "%M slaps you across the face.\n",
  442.                  "%M slaps %m across the face.");
  443.         }
  444.         else
  445.             print(fd, "Slap whom?\n");
  446.     }
  447.     else if(!strcmp(cmdlist[cmdno].cmdstr, "glare")) {
  448.         if(crt_ptr) {
  449.             OUT4("You glare menacingly at %m.\n", 
  450.                  "%M glares menacingly at you.\n",
  451.                  "%M glares menacingly at %m.");
  452.         }
  453.         else
  454.             print(fd, "Glare at whom?\n");
  455.     }
  456.     else if(!strcmp(cmdlist[cmdno].cmdstr, "pat")) {
  457.         if(crt_ptr) {
  458.             OUT4("You pat %m on the head.\n", 
  459.                  "%M pats you on the head.\n",
  460.                  "%M pats %m on the head.");
  461.         }
  462.         else
  463.             print(fd, "Pat whom?\n");
  464.     }
  465.     else if(!strcmp(cmdlist[cmdno].cmdstr, "bow")) {
  466.         if(crt_ptr) {
  467.             OUT4("You bow before %m.\n", 
  468.                  "%M bows before you.\n",
  469.                  "%M bows before %m.");
  470.         }
  471.         else {
  472.             OUT("You make a full-sweeping bow.\n",
  473.                 "%M makes a full-sweeping bow.");
  474.         }
  475.     }
  476.     else if(!strcmp(cmdlist[cmdno].cmdstr, "cough")) {
  477.         OUT5("You cough politely.\n", "%M coughs politely.");
  478.     }
  479.     else if(!strcmp(cmdlist[cmdno].cmdstr, "confused")) {
  480.         OUT("You look bewildered.\n", "%M looks bewildered.");
  481.     }
  482.     else if(!strcmp(cmdlist[cmdno].cmdstr, "grumble")) {
  483.         OUT5("You grumble darkly.\n", "%M grumbles darkly.");
  484.     }
  485.     else if(!strcmp(cmdlist[cmdno].cmdstr, "hiccup")) {
  486.         OUT("You hiccup.\n", "%M hiccups noisily.");
  487.     }
  488.     else if(!strcmp(cmdlist[cmdno].cmdstr, "mutter")) {
  489.         OUT2("You mutter.\n", 
  490.              "%M mutters obscenities under %s breath.");
  491.     }
  492.     else if(!strcmp(cmdlist[cmdno].cmdstr, "scratch")) {
  493.         OUT2("You scratch your head cluelessly.\n", 
  494.             "%M scratches %s head cluelessly.");
  495.     }
  496.     else if(!strcmp(cmdlist[cmdno].cmdstr, "strut")) {
  497.         OUT("You strut around vainly.\n", 
  498.              "%M struts around vainly.");
  499.     }
  500.     else if(!strcmp(cmdlist[cmdno].cmdstr, "sulk")) {
  501.         OUT("You sulk.\n", "%M sulks in dejection.");
  502.     }
  503.     else if(!strcmp(cmdlist[cmdno].cmdstr, "satisfied")) {
  504.         OUT("You smile with satisfaction.\n", 
  505.              "%M smiles with satisfaction.");
  506.     }
  507.     else if(!strcmp(cmdlist[cmdno].cmdstr, "sit")) {
  508.         OUT("You sit down.\n", 
  509.              "%M takes a seat.");
  510.     }
  511.     else if(!strcmp(cmdlist[cmdno].cmdstr, "stand")) {
  512.         OUT("You stand up.\n", 
  513.              "%M stands up.");
  514.     }
  515.     else if(!strcmp(cmdlist[cmdno].cmdstr, "wince")) {
  516.         OUT("You wince painfully.\n", "%M winces painfully.");
  517.     }
  518.     else if(!strcmp(cmdlist[cmdno].cmdstr, "roll")) {
  519.         OUT2("You roll your eyes in exasperation.\n", 
  520.              "%M rolls %s eyes in exasperation.");
  521.     }
  522.     else if(!strcmp(cmdlist[cmdno].cmdstr, "raise")) {
  523.         OUT("You raise an eyebrow questioningly.\n", 
  524.             "%M raises an eyebrow questioningly.");
  525.     }
  526.     else if(!strcmp(cmdlist[cmdno].cmdstr, "whine")) {
  527.         OUT("You whine annoyingly.\n", "%M whines annoyingly.");
  528.     }
  529.     else if(!strcmp(cmdlist[cmdno].cmdstr, "growl")) {
  530.         if(crt_ptr) {
  531.             OUT4("You growl at %m.\n", 
  532.                  "%M threatens you with a growl.\n",
  533.                  "%M growls at %m threateningly.");
  534.         }
  535.         else {
  536.             OUT("You growl.\n", 
  537.                 "%M growls threateningly.");
  538.         }
  539.     }
  540.     else if(!strcmp(cmdlist[cmdno].cmdstr, "bird")) {
  541.         if(crt_ptr) {
  542.             OUT4("You flip off %m.\n", 
  543.                  "%M flips you the bird.\n",
  544.                  "%M gestures indignantly at %m.");
  545.         }
  546.         else {
  547.             OUT("You gesture indignantly.\n", 
  548.                 "%M gestures indignantly.");
  549.         }
  550.     }
  551.     else if(!strcmp(cmdlist[cmdno].cmdstr, "grab")) {
  552.         if(crt_ptr) {
  553.             OUT4("You pull on %m.\n", 
  554.                  "%M pulls on you eagerly.\n",
  555.                  "%M pulls on %m eagerly.");
  556.         }
  557.         else
  558.             print(fd, "Grab whom?\n");
  559.     
  560.     }
  561.     else if(!strcmp(cmdlist[cmdno].cmdstr, "shove")) {
  562.         if(crt_ptr) {
  563.             OUT4("You push %m away.\n", 
  564.                  "%M pushes you away.\n",
  565.                  "%M shoves %m away.");
  566.         }
  567.         else
  568.             print(fd, "Shove whom?\n");
  569.         
  570.     }
  571.     else if(!strcmp(cmdlist[cmdno].cmdstr, "high5")) {
  572.         if(crt_ptr) {
  573.             OUT4("You slap %m a triumphant highfive.\n", 
  574.                  "%M slaps you a triumphant highfive.\n",
  575.                  "%M slaps %m a triumphant highfive.");
  576.         }
  577.         else
  578.             print(fd, "Give whom a highfive?\n");
  579.     }
  580.     else if(!strcmp(cmdlist[cmdno].cmdstr, "moon")) {
  581.         if(crt_ptr) {
  582.             OUT4("You moon %m.\n", 
  583.                  "%M moons you.  It's a full moon tonight!\n",
  584.                  "%M moons %m.  It's a full moon tonight!");
  585.         }
  586.         else {
  587.             OUT2("You moon the world.\n", 
  588.                 "%M drops %s pants and moons the world.");
  589.         }
  590.     }
  591.     else if(!strcmp(cmdlist[cmdno].cmdstr, "purr")) {
  592.         if(crt_ptr) {
  593.             OUT4("You purr at %m.\n", 
  594.                  "%M purrs provocatively at you.\n",
  595.                  "%M purrs provocatively at %m.");
  596.         }
  597.         else {
  598.             OUT("You purr provocatively.\n",
  599.                 "%M purrs provocatively.");
  600.         }
  601.     }
  602.     else if(!strcmp(cmdlist[cmdno].cmdstr, "taunt")) {
  603.         if(crt_ptr) {
  604.             OUT4("You taunt and jeer at %m.\n", 
  605.                  "%M taunts and jeers at you.\n",
  606.                  "%M taunts and jeers at %m.");
  607.         }
  608.         else 
  609.             print(fd, "Taunt whom?\n"); 
  610.     }
  611.     else if(!strcmp(cmdlist[cmdno].cmdstr, "eye")) {
  612.         if(crt_ptr) {
  613.             OUT4("You eye %m suspiciously.\n", 
  614.                  "%M eyes you suspiciously.\n",
  615.                  "%M eyes %m suspiciously.");
  616.         }
  617.         else
  618.             print(fd, "Eye whom?\n");
  619.     }
  620.     else if(!strcmp(cmdlist[cmdno].cmdstr, "worship")) {
  621.         if(crt_ptr) {
  622.             OUT4("You worship %m.\n", 
  623.                  "%M kneels and gives praise to you.\n",
  624.                  "%M kneels and gives praise to %m.");
  625.         }
  626.         else
  627.             print(fd, "Worship whom?\n");
  628.     }
  629.     else if(!strcmp(cmdlist[cmdno].cmdstr, "groan")) {
  630.         OUT("You groan miserabily.\n",
  631.             "%M groans miserabily\n.");
  632.     
  633.     }
  634.     else if(!strcmp(cmdlist[cmdno].cmdstr, "flip")) {
  635.         num = mrand(1,100);
  636.         if(crt_ptr) {
  637.             print(fd, "You flip a coin: %s.\n",
  638.                 (num >50 ) ? "heads" : "tails");
  639.             print(crt_ptr->fd, "%M flips a coin: %s.\n",
  640.                 ply_ptr,(num >50 ) ? "heads" : "tails");
  641.             broadcast_rom2(fd, crt_ptr->fd, rom_ptr->rom_num, 
  642.                 "%M flips a coin and shows it to %m.\n", 
  643.                 ply_ptr, crt_ptr);
  644.         }
  645.         else {
  646.             print(fd, "You flip a coin: %s.\n",
  647.                 (num >50 ) ? "heads" : "tails");
  648.             broadcast_rom(fd, ply_ptr->rom_num,
  649.                 "%M flips a coin.\n",ply_ptr);
  650.         }
  651.     }
  652.     return(0);
  653.  
  654. }
  655.  
  656.